package com.hanamaki.demo01;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.Select;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

/**
 * selenium 中八大 元素 的 定位 的方式
 */
public class FireFoxDriver02 {

    WebDriver driver;

    @BeforeClass
    public void setup() {
        System.setProperty("webdriver.gecko.driver", "C:\\Program Files\\Mozilla Firefox\\geckodriver.exe");
        driver = new FirefoxDriver();
    }

    @Test
    public void test() throws InterruptedException, MalformedURLException {
        driver.get("file:///D:/SoftWare/apache-tomcat-9.0.56/webapps/testhtml/exam/House.html");

        /* xpath  */
//        driver.findElement(By.xpath("//option[@value='c']")).click();

        /* 通过 容器的方式 去选择 下拉列表框中的  元素  */
        WebElement list1 = driver.findElement(By.name("list1"));
        Select select = new Select(list1);

        /* 在容器中 支持三种方法 来选择元素  下标  从  0  开始  */
//        select.selectByIndex(1);
        select.selectByValue("c");
        select.selectByVisibleText("商场");

        /* 判断 表单中的  下拉列表框是否 支持多选   */
        boolean multiple = select.isMultiple();
        System.out.println(multiple);

//        获得网页中  所有的被选中的  元素
        List<WebElement> allSelectedOptions = select.getAllSelectedOptions();
        for (WebElement allSelectedOption : allSelectedOptions) {
            System.out.println(allSelectedOption.getText());
        }

    }



    @AfterClass
    public void close() {
//        driver.close();
    }


}
